﻿using System;
using System.ServiceModel;
using EasyComm.ServiceUnit;

namespace EasyComm.Contracts
{
    [ServiceContract]
    public interface IAdminNLBContract
    {
        [OperationContract]
        ServiceResponse InitializeContracts(Type[] serviceContractList);

        [OperationContract]
        ServiceResponse Initialize();

        [OperationContract]
        SystemServiceUnit GetSystemService(SystemServiceType serviceType);

        [OperationContract]
        SystemServiceUnitCollection GetSystemServiceList();

        [OperationContract]
        ServiceResponse LoadWorkerServiceAssembly(byte[] file, string fileName);

        WorkerServiceUnitCollection WorkerServiceList
        {
            [OperationContract]
            get;
        }

        AdminServiceUnitCollection<IAdminSLBContract> SLBAdminServiceList
        {
            [OperationContract]
            get;
        }
    }
}
